package com.clps.designPatterns.chapter02;

/**
 * 单例设计模式:确保一个类只有一个实例,并且自动的实例化向系统提供这个对象
 * Single成为单例类型,构造函数使用private修饰,确保系统中只能产生一个实例,并且自动生成,上面代码也就是所谓的懒汉加载,只有使用对象的时候才创建,意思是饿了才来吃的
 */
public class Singleton {
    //使用静态的变量记录唯一的实例

    private  static  Singleton singleton = null;

    public Singleton() {
    }
    public  static  Singleton getSingleton(){
        if(singleton == null){
            singleton = new Singleton();
        }
        return  singleton;
    }

    public static void main(String[] args) {
        Singleton singleton1 = Singleton.getSingleton();
        Singleton singleton2 = Singleton.getSingleton();

        System.out.println("singleton2 = " + singleton2);
        System.out.println("singleton1 = " + singleton1);
    }

}
